Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Створення багатопотокових ужитків

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Delphi

Частина тексту файла

Створення багатопотокових ужитків Мета роботи: Вивчення можливостей системи програмування Delphi 5 по створенню багатопотокових ужитків. Порядок роботи: Користуючись рекомендованою літературою до лабораторної роботи створити відповідний проект. Змінити текст програми так, щоб він відповідав індивідуальному завданню. Оформити звіт для захисту лабораторної роботи за зразком назва роботи мета роботи порядок роботи короткі теоретичні відомості алгоритм розв’язку задачі тексти відповідних модулів проекту аналіз отриманих результатів та висновки Питання для самоконтролю 1.Що таке потоки? Де вони використовуються? 2.Як створити модуль для опису потоку в Delphi? 3.Описати основні властивості класу TThread. 4.Описати основні методи класу TThread. 5.Як забезпечити синхронну роботу потоків, пов'язаних між собою? Теоретичні відомості Процес - це проста самодостатня програма, яка не викликає інших програм. Процес характеризується своїм адресним простором, віртуальною пам'яттю, виконуваним кодом та даними. В загальному випадку процес може містити декілька потоків. Потік - це певна послідовність команд, в межах одного процесу, якій операційна система виділяє певні кванти часу. Потоки виконуються ніби паралельно. Прикладом багатопотокового ужитку є Microsoft Word, який може одночасно друкувати документ, перевіряти орфографію і реагувати на дії користувача, який редагує текст. Отже, якщо в ужитку є незалежні або частково незалежні одна від одної задачі, то доцільно для кожної з них виділити свій потік. Паралельні потоки працюють в адресному просторі одного процесу і можуть мати доступ до глобальних змінних цього процесу. Для створення ужитку з декількома потоками використовується компонент TThread - абстрактний клас для створення окремого потоку. Для включення компонента TThread у проект Delphi використовується пункт меню File\New\ThreadObject. У відповідному вікні слід ввести ім'я дочірнього класу для TThread, наприклад TMyThread. В результаті створюється новий модуль: unit Unit2; interface uses Classes; type TMyThread = classs (TThread) private protected procedure Execute; override; end; implementation procedure TMyThread.Execute; { основна процедура потоку} begin {код потоку} end; end. Використання потоку завершується по закінченню процедури Execute. Методи класу потоку. constructor Create (CreateSuspended: Boolean) - створення об'єкту потоку. Параметр CreateSuspended задає спосіб виконання потоку. Якщо CreateSuspended = False, то процедура Execute виконується одразу після створення об'єкту. Якщо CreateSuspended = True, то процедура Execute виконується після виконання метода Resume. Процедура Resume окрім цього може запускати потік, зупинений за допомогою метода Suspend. Перевірити, чи потік є зупинений, можна за допомогою властивості Suspended. Якщо у процедурі Execute викликаються методи, або використовуються властивості компонентів VCL, то для уникнення конфлікту між потоками використовується метод Synchronize (Method: ThreadMethod). (Method - це процедура, яка працює з компонентами VCL)/ При цьому код модуля Unit2 зміниться наступним чином. unit Unit2; interface uses Classes; { інші модулі дописує програміст} type TMyThread = classs (TThread) private procedure Work; protected procedure Execute; override; end; implementation procedure TMyThread.Work; begin { код потоку } end; procedure TMyThread.Execute; { основна процедура потоку} begin Synchronize (Work) end; end. Щоб достроково зупинити виконання потоку у процедуру Execute додається перевірка властивості Terminated. Якщо зовнішній потік викликав метод Terminate для цього потоку, то Terminated встановлюється в True. Наприклад: procedure TMyThread.Execute; begin repeat DoSomething until Terminated; end; Щоб негайно завершити потік використовується функція Win32 API TerminateThread (Thread1.Handle, 0), де Thread1.Handle - ім'я потоку, 0 - код завершення, що передається у властивіст...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини